Certain communication devices transmit and receive signals over a communication medium, such as a wireline, wireless, or optical communication medium. These communication devices typically include digital filters for performing various filtering operations, such as Finite Impulse Response (FIR) filtering, Infinite Impulse Response (IIR) filtering, decimation, interpolation, and echo cancellation. The types and configurations of digital filters (e.g., the number of taps or bi-quads) for a particular implementation are typically selected based on the type of communication system and the expected characteristics of the communication medium. Often, the types and configurations of digital filters selected for a particular implementation are trade-offs to obtain acceptable performance over a range of possible conditions.
A typical N-tap finite impulse response (FIR) filter includes an N-stage shift register and various other components, such as data registers, coefficient registers, multiplexers, and an accumulator. Data from the data registers passes through the N-stage shift register, and the output of each stage is multiplied with a corresponding coefficient. The sum of the products constitutes the filter output. A typical FIR filter might have 128 filter taps (i.e., N=128). For 16-bit data, the shift register is typically 16 deep (i.e., each register R includes 16 flip-flops). Such digital filters are typically expensive in terms of the number of electronic components.